using System;
using System.Collections.Generic;
using System.Text;

namespace Calc.Parser
{
	[Flags]
	public enum ParserTokenType
	{
		/// <summary>
		/// Any numeric string
		/// </summary>
		Constant = 0x00000001,

		/// <summary>
		/// Any text string
		/// </summary>
		Variable = 0x00000002,

		/// <summary>
		/// Representative of:
		///		variable + ( + )
		///		variable + ( + set + )
		///		variable + ( + setlist + )
		/// </summary>
		Function = 0x00000004,

		/// <summary>
		/// Representative of:
		///		function + = + set
		/// </summary>
		FunctionDefinition = 0x00000008,

		/// <summary>
		/// Any of the following operators +,-,/,*,=,+=,*=,/=,-=
		/// </summary>
		Operator = 0x00000010,

		/// <summary>
		/// Either a variable or a constant
		/// </summary>
		Operand = 0x00000020,

		/// <summary>
		/// Any complete set of: 
		///		operand
		///		operand + operator + operand
		///		set + operator + variable
		///		set + operator + constant
		/// </summary>
		Set = 0x00000040,

		/// <summary>
		/// One or more sets seperated by a comma
		/// </summary>
		SetList = 0x00000080,
	}

	public abstract class ParserToken
	{
	}
}
